from itertools import combinations

def generate_seven_arrays(numbers):
    """
    将16个数字分成7个数组，确保每个数组都包含16个数字中的一个6元子集。
    """
    if len(numbers) != 16:
        raise ValueError("必须提供16个数字！")

    # Step 1: 生成所有可能的6个数字组合
    all_combinations = list(combinations(numbers, 6))

    # Step 2: 初始化结果
    result = []

    # Step 3: 创建所有可能的7个数组组合
    for selected_groups in combinations(all_combinations, 7):
        # 确保每个数组都包含一个6元子集
        if len(set().union(*selected_groups)) == 42:  # 7 * 6 = 42
            result.append(selected_groups)

    # 返回所有符合条件的组合及其数量
    return result, len(result)


# Step 2: 生成满足条件的7个数组
arrays, count = generate_seven_arrays(numbers)

# Step 3: 输出结果
print(f"符合条件的数组数量: {count}")
print("生成的符合条件的数组如下：")
for i, arr in enumerate(arrays, 1):
    print(f"数组 {i}: {arr}")